1. Field of the Invention
The present invention relates generally to an improved data processing system and in particular to a method and apparatus for emulated environments in a data processing system. Still more particularly, the present invention relates to a computer implemented method, apparatus, and computer program product for managing the execution of programs in emulated environments.
2. Description of the Related Art
An emulator is a software program that duplicates the functions of a first system by a second system so that the second system behaves, and sometimes appears, like the first system. Emulators are often used to provide access to scarce or expensive resources or to allow applications written for one environment to run on a different environment. An emulator, which runs on a host system, often has a different architecture or instruction set than the host system. These differences often make the emulation process computationally expensive.
A Java™ virtual machine (JVM) is a set of computer software programs that incorporates “write-once, run anywhere” semantics for Java™ programs that are encoded as .class files. The JVM is typically packaged as a native executable that loads and executes other computer programs and scripts, such as .class files. The Java™ virtual machine utilizes a just-in-time compiler that converts bytecoded Java™ programs into efficient native code at runtime. As a result, the execution of a JVM in an emulated environment often suffers a performance penalty because the creation of the native code at runtime prevents the implementation of executables/shared libraries which the emulator can analyze in advance.